261B - Maxim and Restaurant - CodeForces Solution


dp math probabilities *1900

Please click on ads to support us..

C++ Code:

#include "bits/stdc++.h"
using ll = long long  ;
#define F first
#define S second
const ll mod = 998244353 ;
const ll N = 2e5 + 5 ;
using namespace std;
double fact[55];
ll n , p  , vis[55][55][55] , timer , a[55] , t = 1;
double dp[55][55][55];
double DP(ll i , ll take , ll sum , ll j)
{
    if(sum > p)return 0 ;
    if(i == n + 1)
    {
        if(sum + a[j] > p)
        {
          return take * fact[take] * fact[n - take - 1] / fact[n]  ;
        }
        return 0 ;
    }
    double &ret = dp[i][take][sum] ;
    if(vis[i][take][sum] == timer)return ret ;
    vis[i][take][sum] = timer ;
    ret =  0.0 ;
    if(i == j)return ret = DP(i + 1 , take , sum , j) ;
    ret += DP(i + 1 , take + 1 , sum + a[i] , j) ;
    ret += DP(i + 1 , take , sum , j) ;
    return ret ;
}
int main()
{
    //cin >> t ;
    while(t--)
    {
        fact[0] = 1.0 ;
        for(int i = 1 ; i <= 50 ; ++i)fact[i] = fact[i - 1]  * i ;
        cin >> n ;
        int sum = 0 ;
        for(int i = 1 ; i <= n ; ++i)cin >> a[i] , sum += a[i] ;
        cin >> p ;
        if(sum <= p){
            cout << n << "\n";
            return 0;
        }
        double ans = 0.0 ;
        for(int i = 1 ; i <= n ; ++i)
        {
            timer = timer + 1 ;
            ans += DP(1 , 0  , 0 , i) ;
        }
        cout << fixed << setprecision(10) << ans << "\n";

    }

}


Comments

Submit
0 Comments
More Questions

1529A - Eshag Loves Big Arrays
19. Remove Nth Node From End of List
925. Long Pressed Name
1051. Height Checker
695. Max Area of Island
402. Remove K Digits
97. Interleaving String
543. Diameter of Binary Tree
124. Binary Tree Maximum Path Sum
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts
501A - Contest
160A- Twins
752. Open the Lock
1535A - Fair Playoff
1538F - Interesting Function
1920. Build Array from Permutation
494. Target Sum
797. All Paths From Source to Target
1547B - Alphabetical Strings
1550A - Find The Array
118B - Present from Lena
27A - Next Test
785. Is Graph Bipartite
90. Subsets II
1560A - Dislike of Threes
36. Valid Sudoku
557. Reverse Words in a String III
566. Reshape the Matrix
167. Two Sum II - Input array is sorted
387. First Unique Character in a String